//
//  NHCommonTableViewCell.m
//  NeiHanDemo
//
//  Created by qianfeng on 16/2/19.
//  Copyright © 2016年 王卓越. All rights reserved.
//

#import "NHCommonTableViewCell.h"
//网络图片
#import "UIImageView+WebCache.h"
#import "NHHelper.h"
#import "NHCommonTableViewCell.h"
#import "Define.h"

#define PADDING 5

@interface NHCommonTableViewCell()

//时间        ->在xib 创建时 左、右、上、高
@property (weak, nonatomic) IBOutlet UILabel *nhTitleLabel;
//文本内容    ->在xib 创建时 左、右、上、下
@property (weak, nonatomic) IBOutlet UILabel *nhContentLabel;
//图片       ->在xib 创建时 先确定下方的 @"赞" @"评论" button -》左、右、底部距下方button顶部的距离，再设置自身高度(为防止网络图片与自己预先设置的不一样，造成图片失真，但是这样做会造成 约束冲突，所以要修改约束优先级，降低 约束的 优先级，优先考虑网络图片自身的高)
@property (weak, nonatomic) IBOutlet UIImageView *nhImageView;
//赞         ->在xib 创建时 左、下、宽、高
@property (weak, nonatomic) IBOutlet UIButton *supportButton;
//评论       ->在xib 创建时 右、下、宽、高
@property (weak, nonatomic) IBOutlet UIButton *commentButton;
//记录更新的model
@property (nonatomic) NHCommonModel *updateModel;

@end


@implementation NHCommonTableViewCell

- (void)updateWithModel:(NHCommonModel *)model{
    
    //记录，以便后面使用
    self.updateModel = model;
    
    //update_time ->转化日期(默认从1970年开始  以秒计算)
    //时间 model.update_time ->时时更新的时间
    self.nhTitleLabel.text = [NHHelper converDateString:model.update_time];
    //正文 nhContentLabel
    self.nhContentLabel.text = model.wbody;
    //图片
    [self.nhImageView sd_setImageWithURL:[NSURL URLWithString:model.wpic_middle]];
    //赞
    [self.supportButton setTitle:[NSString stringWithFormat:@"赞 %@", model.likes] forState:UIControlStateNormal];
    //评论
    [self.commentButton setTitle:[NSString stringWithFormat:@"评论 %@", model.comments] forState:UIControlStateNormal];
    
    CGSize imageSize = [NHHelper imageSize:model.wpic_m_width height:model.wpic_m_height restictWidth:kScreenWidth - 8 - 8];
    self.imageViewConstraint.constant = imageSize.height;
    
    //触发 layoutSubviews 的调用
//    [self setNeedsLayout];
}

//layoutSubviews 重新布局你的cell，cell上的每个元素都可以重新设置坐标
//注意:当cell的大小发生变化时，该函数会自动调用该函数
//该函数不能直接调用，如果需要手动触发，调用setNeedLayout,系统会在合适的时候调用 layoutSubviews
- (void)layoutSubviews{
    //注意一定先调用super,先让系统自己布局自己的
    [super layoutSubviews];
    //下面再布局我们自己的控件 nhTitleLabel ->由 System 13 决定
    //
    self.nhTitleLabel.frame = CGRectMake(20, PADDING, kScreenWidth - 20 - 20, 13);
    //nhTitleLabel 的底部
    CGFloat titleBottom = self.nhTitleLabel.frame.origin.y + self.nhTitleLabel.frame.size.height;
    
    //使用NHHelper ——》计算出内容的大小 nhContentLabel -> 由 System 18 决定
    CGSize contentSize = [NHHelper contentSizeOfString:self.nhContentLabel.text maxWidth:kScreenWidth - 20 - 20 font:[UIFont systemFontOfSize:18]];
    self.nhContentLabel.frame = CGRectMake(20, titleBottom + PADDING, kScreenWidth - 20 - 20, contentSize.height);
//内容的底部
    CGFloat contentBottom = self.nhContentLabel.frame.origin.y + contentSize.height;
    
    //使用NHHelper ——》计算出图片的高度
    CGSize imageSize = [NHHelper imageSize:self.updateModel.wpic_m_width height:self.updateModel.wpic_m_height restictWidth:kScreenWidth -40];
    self.nhImageView.frame = CGRectMake(20, contentBottom + PADDING, imageSize.width, imageSize.height);
//图片底部
    CGFloat imageBottom = self.nhImageView.frame.origin.y + imageSize.height;
    
    //赞
    self.supportButton.frame = CGRectMake(60, imageBottom + PADDING, 80, 30);
    //评论
    self.commentButton.frame = CGRectMake(kScreenWidth - 60 - 80, imageBottom + PADDING, 80, 30);
    
}

/*
//计算 高度
+ (CGFloat)calculteCellHeight:(NHCommonModel *)model{
//    CGSize bodySize = [NHHelper contentSizeOfString:model.wbody maxWidth:kScreenWidth - 20 - 20 font:[UIFont systemFontOfSize:17]];
    //文本内容大小
    CGSize bodySize = [NHHelper contentSizeOfString:model.wbody maxWidth:kScreenWidth - 20 - 20 font:[UIFont systemFontOfSize:18]];
    //图片大小
    CGSize imageSize = [NHHelper imageSize:model.wpic_m_width height:model.wpic_m_height restictWidth:kScreenWidth - 20 - 20];
    //13 ->展示 时间的文本 高度 由 System 13 决定
    //bodySize.height  -》展示正文 内容 的高度
    //imageSize.height -》展示图片 高度
    //30   ->赞/评论 button的高度
    return PADDING + 13 + PADDING + bodySize.height + PADDING + imageSize.height + PADDING + 30 + PADDING;
}
*/
 
- (void)awakeFromNib {
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end
